package com.winner.data.util;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;

/**
 * jasypt加密解密 会自行解密并使用解密后的账号密码连接数据库 加密算法 3.x版本默认加密算法为 PBEWITHHMACSHA512ANDAES_256 2.x版本默认加密算法为PBEWithMD5AndDES
 *
 * @author wangxinle5
 * @since 2022/04/25
 */
public class JasyptUtil {

    public static void main(String[] arg) {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        /* 使用默认的算法 */
        standardPBEStringEncryptor.setAlgorithm("PBEWithMD5AndDES");
        /* 加盐 */
        standardPBEStringEncryptor.setPassword("sino");
        // 加密密码
        String password = standardPBEStringEncryptor.encrypt("123456");
        System.out.println("加密后的密码:  " + password);
        System.out.println("加密后的密码配置到application.yml中的值是:  " + "ENC("+password+ ")");
        // 当知道盐值时， 就可以反解出密码
        System.out.println("解密后的密码:  " + standardPBEStringEncryptor.decrypt(password));
    }

}
